home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / ImageMagick / magick / image.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  5.5 KB  |  263 lines

  1. /*
  2.   Image define declarations.
  3. */
  4. #define AbsoluteValue(x)  ((x) < 0 ? -(x) : (x))
  5. #define DegreesToRadians(x) ((x)*3.14159265358979323846/180.0)
  6. #define Intensity(color)  (unsigned int)  \
  7.   ((unsigned int) ((color).red*77+(color).green*150+(color).blue*29) >> 8)
  8. #define MaxColormapSize  65535
  9. #define MaxImageSize  (4096*4096)
  10. #define MaxRGB  255
  11. #define MaxRunlength  255
  12. #define MaxTextLength  2048
  13. #define RadiansToDegrees(x) ((x)*180/3.14159265358979323846)
  14.  
  15. /*
  16.   Image Id's
  17. */
  18. #define UndefinedId  0
  19. #define ImageMagickId  1
  20. /*
  21.   Image classes:
  22. */
  23. #define UndefinedClass  0
  24. #define DirectClass  1
  25. #define PseudoClass  2
  26. /*
  27.   Image colorspaces:
  28. */
  29. #define UndefinedColorspace  0
  30. #define RGBColorspace  1
  31. #define GRAYColorspace 2
  32. #define OHTAColorspace  3
  33. #define XYZColorspace  4
  34. #define YCbCrColorspace  5
  35. #define YIQColorspace  6
  36. #define YUVColorspace  7
  37. /*
  38.   Image compression algorithms:
  39. */
  40. #define UndefinedCompression  0
  41. #define NoCompression  1
  42. #define RunlengthEncodedCompression  2
  43. #define QEncodedCompression  3
  44. /*
  45.   Image interlace:
  46. */
  47. #define UndefinedInterlace  0
  48. #define NoneInterlace  1
  49. #define LineInterlace  2
  50. #define PlaneInterlace  3
  51. /*
  52.   Image compositing operations:
  53. */
  54. #define UndefinedCompositeOp  0
  55. #define OverCompositeOp  1
  56. #define InCompositeOp  2
  57. #define OutCompositeOp  3
  58. #define AtopCompositeOp  4
  59. #define XorCompositeOp  5
  60. #define PlusCompositeOp  6
  61. #define MinusCompositeOp  7
  62. #define AddCompositeOp  8
  63. #define SubtractCompositeOp  9
  64. #define DifferenceCompositeOp  10
  65. #define ReplaceCompositeOp  11
  66. /*
  67.   Page geometries:
  68. */
  69. #define PSDensityGeometry  "72x72"
  70. #define PSPageGeometry  "612x792+18+94"
  71. #define TextPageGeometry  "612x792+36+36"
  72.  
  73. /*
  74.   Typedef declarations for the Display program.
  75. */
  76. typedef struct _ColorPacket
  77. {
  78.   unsigned char
  79.     red,
  80.     green,
  81.     blue,
  82.     flags;
  83.  
  84.   unsigned short
  85.     index;
  86. } ColorPacket;
  87.  
  88. typedef struct _ImageInfo
  89. {
  90.   char
  91.     filename[MaxTextLength],
  92.     magick[12];
  93.  
  94.   unsigned int
  95.     assert;
  96.  
  97.   char
  98.     *server_name,
  99.     *font,
  100.     *geometry,
  101.     *density,
  102.     *page;
  103.  
  104.   unsigned int
  105.     interlace,
  106.     monochrome,
  107.     quality,
  108.     verbose;
  109.  
  110.   char
  111.     *undercolor;
  112. } ImageInfo;
  113.  
  114. typedef struct _RectangleInfo
  115. {
  116.   unsigned int
  117.     width,
  118.     height;
  119.  
  120.   int
  121.     x,
  122.     y;
  123. } RectangleInfo;
  124.  
  125. typedef struct _RunlengthPacket
  126. {
  127.   unsigned char
  128.     red,
  129.     green,
  130.     blue,
  131.     length;
  132.  
  133.   unsigned short
  134.     index;
  135. } RunlengthPacket;
  136.  
  137. typedef struct _Image
  138. {
  139.   FILE
  140.     *file;
  141.  
  142.   int
  143.     status;
  144.  
  145.   char
  146.     filename[MaxTextLength];
  147.  
  148.   int
  149.     pipe;
  150.  
  151.   char
  152.     magick[12],
  153.     *comments,
  154.     *label;
  155.  
  156.   unsigned int
  157.     id,
  158.     class,
  159.     colorspace,
  160.     alpha,
  161.     compression,
  162.     columns,
  163.     rows,
  164.     colors,
  165.     scene;
  166.  
  167.   char
  168.     *montage,
  169.     *directory;
  170.  
  171.   ColorPacket
  172.     *colormap;
  173.  
  174.   char
  175.     *signature;
  176.  
  177.   RunlengthPacket
  178.     *pixels,
  179.     *packet;
  180.  
  181.   unsigned long
  182.     packets;
  183.  
  184.   unsigned int
  185.     runlength,
  186.     packet_size;
  187.  
  188.   unsigned char
  189.     *packed_pixels;
  190.  
  191.   unsigned int
  192.     orphan;
  193.  
  194.   struct _Image
  195.     *previous,
  196.     *next;
  197. } Image;
  198.  
  199. /*
  200.   Image utilities routines.
  201. */
  202. extern void
  203.   CommentImage _Declare((Image *,char *)),
  204.   Error _Declare((char *,char *)),
  205.   LabelImage _Declare((Image *,char *)),
  206.   Warning _Declare((char *,char *));
  207.  
  208. extern Image
  209.   *AllocateImage _Declare((ImageInfo *)),
  210.   *BorderImage _Declare((Image *,RectangleInfo *,ColorPacket *,ColorPacket *)),
  211.   *ClipImage _Declare((Image *,RectangleInfo *)),
  212.   *CopyImage _Declare((Image *,unsigned int,unsigned int,unsigned int)),
  213.   *EnhanceImage _Declare((Image *)),
  214.   *FrameImage _Declare((Image *,RectangleInfo *,unsigned int,ColorPacket *,
  215.     ColorPacket *,ColorPacket *)),
  216.   *NoisyImage _Declare((Image *)),
  217.   *ReadImage _Declare((ImageInfo *)),
  218.   *ReflectImage _Declare((Image *)),
  219.   *RollImage _Declare((Image *,int,int)),
  220.   *RotateImage _Declare((Image *,double,unsigned int)),
  221.   *SampleImage _Declare((Image *,unsigned int,unsigned int)),
  222.   *ScaleImage _Declare((Image *,unsigned int,unsigned int)),
  223.   *ShearImage _Declare((Image *,double,double,unsigned int)),
  224.   *StereoImage _Declare((Image *,Image *));
  225.  
  226. extern int
  227.   ReadDataBlock _Declare((char *,FILE *));
  228.  
  229. extern unsigned int
  230.   IsGrayImage _Declare((Image *)),
  231.   NumberColors _Declare((Image *,FILE *)),
  232.   ReadData _Declare((char *,int,int,FILE *)),
  233.   UncompressImage _Declare((Image *)),
  234.   WriteImage _Declare((ImageInfo *,Image *));
  235.  
  236. extern void
  237.   CloseImage _Declare((Image *)),
  238.   ColormapSignature _Declare((Image *)),
  239.   CompositeImage _Declare((Image *,unsigned int,Image *,int,int)),
  240.   CompressColormap _Declare((Image *)),
  241.   CompressImage _Declare((Image *)),
  242.   DestroyImage _Declare((Image *)),
  243.   DestroyImages _Declare((Image *)),
  244.   GammaImage _Declare((Image *,char *)),
  245.   InverseImage _Declare((Image *)),
  246.   GetImageInfo _Declare((char *,ImageInfo *)),
  247.   NormalizeImage _Declare((Image *)),
  248.   OpenImage _Declare((Image *,char *)),
  249.   ParseImageGeometry _Declare((char *,unsigned int *,unsigned int *)),
  250.   QuantizationError _Declare((Image *,unsigned int *,double *,double *)),
  251.   QuantizeImage _Declare((Image *,unsigned int,unsigned int,unsigned int,
  252.     unsigned int,unsigned int)),
  253.   QuantizeImages _Declare((Image **,unsigned int,Image *,unsigned int,
  254.     unsigned int,unsigned int,unsigned int,unsigned int)),
  255.   RGBTransformImage _Declare((Image *,unsigned int)),
  256.   SetErrorHandler _Declare((ErrorHandler)),
  257.   SetImageMagick _Declare((ImageInfo *)),
  258.   SetWarningHandler _Declare((ErrorHandler)),
  259.   SortColormapByIntensity _Declare((Image *)),
  260.   SyncImage _Declare((Image *)),
  261.   TransformImage _Declare((Image **,char *,char *)),
  262.   TransformRGBImage _Declare((Image *,unsigned int));
  263.